symbolic differentiation calculus